The present invention relates generally to the field of data processing systems, and more particularly to machine management.
In a distributed computing environment, the execution of software and programs can be deployed to hardware that supports physical and virtual systems (e.g., virtual machines). In addition, various components within a computing system can be virtualized, such as network switches and communication adapters. A virtual machine (e.g., an application server) can be dynamically configured (e.g., computational speed, multitasking, high-volume network traffic, response time, reliability, etc.) and optimized for the applications executed on the virtual machine (VM). Virtual machines provide improved availability (e.g., fault-tolerance), improved performance (e.g., bandwidth), improved scalability, and improved maintainability (e.g., disaster recovery processes).
Data centers have evolved away from individual servers and PCs to rack mounted “blade” server “farms” and RISC (reduced instruction set computing) systems (computing clusters) and most recently “cloud” computing powered by mainframe computers that can be “virtualized” into entities and systems tailored to a customer's requirements. Data centers utilizing virtualization of computing resources range from enterprise systems dedicated to a site within a company to distributed computing environments that sell access to their computing resources on an as-needed basis (e.g., cloud computing). Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources that may be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. For example, cloud computing allows a customer to obtain data processing resources, such as networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services as a service on a temporary basis when needed.
Within a networked computing environment, such as data center, some portions of the environment include computing systems that include various virtualization technologies. The networked computing environment may include: one or more computing systems that include a plurality of interconnected physical resources (e.g., microprocessors, memory, storage devices, communication devices, etc.); a local group/cluster of computing systems, such as racks of blade servers, network-attached storage (NAS) systems, and storage area networks (SANs); distributed computing environments, such as a cloud infrastructure; or any combination thereof. Within a virtualized system, each computing entity behaves as if the computing entity were a separate system, such as a computing node, a storage system, and/or a networking system. In system virtualization, multiple virtual entities are created and “hosted” within a physical system. Examples of virtual entities are: virtual servers, virtual storage, virtual networks including virtual private networks, virtual applications and operating systems, and virtual clients. The physical system can be a stand-alone computer, or alternatively, a computing system utilizing clustered computers and components. Virtual systems are independent operating environments that use virtual resources made up of logical divisions of physical resources such as microprocessors, memory and input/output (I/O) adapters. This system virtualization is implemented through some managing functionality.